window: Add gtk_window_get_popover_position()
authorCarlos Garnacho <carlosg@gnome.org>
Mon, 23 Dec 2013 18:04:48 +0000 (19:04 +0100)
committerCarlos Garnacho <carlosg@gnome.org>
Wed, 22 Jan 2014 16:10:05 +0000 (17:10 +0100)
A getter to complement the setter

docs/reference/gtk/gtk3-sections.txt
gtk/gtkwindow.c
gtk/gtkwindow.h

index 0c9237c6602800b51a7372a80163c82321d3cbed..91f4f484be63a3309b5aec9507680b594974adf2 100644 (file)
@@ -5695,6 +5695,7 @@ gtk_window_set_titlebar
 gtk_window_add_popover
 gtk_window_remove_popover
 gtk_window_set_popover_position
+gtk_window_get_popover_position
 
 <SUBSECTION Standard>
 GTK_WINDOW
index 532bbafacaa009252a0271897e4083a04601e199..8e5916961a2275e821f7bfcdf462a01989da6c1d 100644 (file)
@@ -12038,3 +12038,44 @@ gtk_window_set_popover_position (GtkWindow                   *window,
 
   gtk_widget_queue_resize (popover);
 }
+
+/**
+ * gtk_window_get_popover_position:
+ * @window: a #GtkWindow
+ * @popover: a #GtkWidget acting as popover
+ * @pos: return value for the position of @popover relative to @rect
+ * @rect: return value for the disclosure rectangle
+ *
+ * Returns the positioning details of @popover, relative to @window.
+ *
+ * Since: 3.12
+ **/
+void
+gtk_window_get_popover_position (GtkWindow             *window,
+                                 GtkWidget             *popover,
+                                 GtkPositionType       *pos,
+                                 cairo_rectangle_int_t *rect)
+{
+  GtkWindowPopover *data;
+  GtkWindowPrivate *priv;
+
+  g_return_if_fail (GTK_IS_WINDOW (window));
+  g_return_if_fail (GTK_IS_WIDGET (popover));
+
+  priv = window->priv;
+  data = g_hash_table_lookup (priv->popovers, popover);
+
+  if (!data)
+    {
+      g_warning ("Widget %s(%p) is not a popover of window %s",
+                 gtk_widget_get_name (popover), popover,
+                 gtk_widget_get_name (GTK_WIDGET (window)));
+      return;
+    }
+
+  if (pos)
+    *pos = data->pos;
+
+  if (rect)
+    *rect = data->rect;
+}
index 31ced6f926b2c80b8494e33aea76b1e4c1902970..70b3901d99c7960b38a3ee72dea29a96b681e3d1 100644 (file)
@@ -494,6 +494,11 @@ void     gtk_window_set_popover_position   (GtkWindow                   *window,
                                             GtkWidget                   *popover,
                                             GtkPositionType              pos,
                                             const cairo_rectangle_int_t *rect);
+GDK_AVAILABLE_IN_3_12
+void     gtk_window_get_popover_position   (GtkWindow                   *window,
+                                            GtkWidget                   *popover,
+                                            GtkPositionType             *pos,
+                                            cairo_rectangle_int_t       *rect);
 
 G_END_DECLS